package com.bd.scm.domain.dto.repairAttendance;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * @author yufc
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "补出勤信息-APP")
public class RepairAppDto implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty( value = "单据ID", notes = "单据ID", dataType = "Long", position = 1)
    private Long orderId;

    @ApiModelProperty( value = "单据号", notes = "单据号", dataType = "String", position = 2)
    private String orderNo;

    @ApiModelProperty( value = "开始日期", notes = "开始日期", dataType = "Date", position = 3)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startDate;

    @ApiModelProperty( value = "结束日期", notes = "结束日期", dataType = "Date", position = 4)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endDate;

    @ApiModelProperty( value = "补出勤事由", notes = "补出勤事由", dataType = "Date", position = 5)
    private String remark;

    @ApiModelProperty( value = "提交人工号", notes = "提交人工号", dataType = "String", position = 6)
    private String applierNo;

    @ApiModelProperty( value = "提交人姓名", notes = "提交人姓名", dataType = "String", position = 7)
    private String applierName;

    @ApiModelProperty( value = "提交时间", notes = "提交时间", dataType = "Date", position = 8)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty( value = "审批状态", notes = "审批状态", dataType = "Integer", position = 9)
    private Integer status;

    @ApiModelProperty( value = "审批状态名称", notes = "审批状态名称", dataType = "String", position = 10)
    private String statusName;

    @ApiModelProperty( value = "审批人姓名", notes = "审批人姓名", dataType = "String", position = 11)
    private String lastApproverName;

    @ApiModelProperty( value = "审批时间", notes = "审批时间", dataType = "String", position = 12)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastApproverTime;

    @ApiModelProperty( value = "审批驳回原因", notes = "审批驳回原因", dataType = "Date", position = 13)
    private String rejectReason;

    @ApiModelProperty( value = "补出勤时间", notes = "补出勤时间", dataType = "Date", position = 14)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date sj;

    @ApiModelProperty( value = "申请人ID", notes = "申请人ID", dataType = "Integer", position = 15)
    private Integer userSerial;

    @ApiModelProperty( value = "申请人工号", notes = "申请人工号", dataType = "String", position = 16)
    private String userNo;

    @ApiModelProperty( value = "申请人姓名", notes = "申请人姓名", dataType = "String", position = 17)
    private String userName;

    @ApiModelProperty( value = "申请人部门", notes = "申请人部门", dataType = "String", position = 18)
    private String depName;

    @ApiModelProperty( value = "开始时间", notes = "开始时间（格式：08：00）", dataType = "String", position = 19)
    private String startTimeName;

    @ApiModelProperty( value = "结束时间", notes = "结束时间（格式：17：00)", dataType = "String", position = 20)
    private String endTimeName;

    @ApiModelProperty( value = "明细数据ID", notes = "明细数据ID", dataType = "Integer", position = 21)
    private Integer detailId;

    @ApiModelProperty( value = "补打卡类型", notes = "补打卡类型,0：PC端补打卡，1：补上班，2：补下班，3：补上下班", dataType = "Integer", position = 12, required = true)
    private Integer repairType;


}

